# -*- coding: utf-8 -*-

import pymysql
from tools.setting import MySQL_DB, MySQL_PWD, MySQL_PORT, MySQL_USER, MySQL_HOST


class NBAdb:

    def __init__(self):
        """
        建立连接
        """
        self.conn = pymysql.connect(host=MySQL_HOST,
                                    port=MySQL_PORT,
                                    user=MySQL_USER,
                                    password=MySQL_PWD,
                                    database=MySQL_DB,
                                    charset='utf8')

        self.cur = self.conn.cursor()

    def create_table(self, sql_create_text):
        """
        创建数据表。
        :param sql_create_text:创建数据表的SQL语句。
        :return:
        """
        try:
            self.cur.execute(sql_create_text)

        except Exception as e:
            self.conn.rollback()

    def insert_table(self, sql_create_text, data_list):
        """
        插入数据。
        :param sql_create_text: 插入数据表的SQL语句。
        :param data_list:插入数据表的数据列表。
        :return:
        """
        try:
            self.cur.execute(sql_create_text, data_list)
            self.conn.commit()
            print('插入数据OK')
        except Exception as e:
            print('插入数据失败')
            print(e)
            self.conn.rollback()

    def select_data(self, sql_select):
        """
        查询数据,并以列表形式返回
        :param sql_select: 查询数据的SQL语句。
        :return:
        """
        try:
            list_value = []
            self.cur.execute(sql_select)
            while 1:
                res = self.cur.fetchone()
                if res is None:
                    # 表示已经取完结果
                    break
                list_value.append(res)
            return list_value
        except Exception as e:
            print("查询数据异常")
            print(e)
            self.conn.rollback()  # 回滚

    def __del__(self):
        """
        释放资源
        :return:
        """
        self.cur.close()
        self.conn.close()
